package binarytree;


/**
 * @Author: 海琳琦
 * @Date: 2021/9/15 10:06
 */
public class Title104 {
    class TreeNode{
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(){}
        TreeNode(int val){
            this.val = val;
        }
        TreeNode(int val, TreeNode left, TreeNode right){
            this.val = val;
            this.left = left;
            this.right = right;
        }
    }

    public static void main(String[] args) {

    }

    public int maxDepth(TreeNode root) {
        if(root == null) {
            return 0;
        }
        int maxleftdepth = maxDepth(root.left);
        int maxrightdepth = maxDepth(root.right);
        return Math.max(maxleftdepth, maxrightdepth) + 1;
    }


    /**
     * 广度搜索
     * @param root
     * @return
     */
//    public int maxDepth(TreeNode root) {
//        int depth = 0;
//        if(root==null){
//            return depth;
//        }
//        Queue<TreeNode> queue = new LinkedList<>();
//        queue.offer(root);
//        while(!queue.isEmpty()){
//            depth++;
//            int currentSize = queue.size();
//            for (int i = 0; i < currentSize; i++) {
//                TreeNode poll = queue.poll();
//                if(poll.left!=null){
//                    queue.offer(poll.left);
//                }
//                if(poll.right!=null){
//                    queue.offer(poll.right);
//                }
//            }
//        }
//        return depth;
//    }

}
